package com.xinqi.modules.exam.analyze.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xinqi.common.mybatis.data.entity.UpdateTimeEntity;
import com.xinqi.modules.exam.analyze.dto.GradeDistributionDTO;
import com.xinqi.modules.exam.analyze.dto.QuestionExplainDTO;
import com.xinqi.modules.exam.analyze.dto.QuestionScoreRateDTO;
import lombok.Getter;
import lombok.Setter;

import java.math.BigDecimal;
import java.util.List;

/**
 * 课程测评分析实体层
 *
 * @author: linkai
 * @date: 2023/07/02
 */
@Setter
@Getter
@TableName("co_course_exam_paper_analyze")
public class CourseExamPaperAnalyzeEntity extends UpdateTimeEntity {
    /**
     * 租户ID
     */
    @TableField(value = "tenant_id")
    private Long tenantId;
    /**
     * 测评ID
     */
    @TableField(value = "exam_paper_id")
    private Long examPaperId;
    /**
     * 题目总数
     */
    @TableField(value = "question_total")
    private Integer questionTotal;
    /**
     * 总分
     */
    @TableField(value = "total_score")
    private BigDecimal totalScore;
    /**
     * 总答题人数
     */
    @TableField(value = "all_user_count")
    private Integer allUserCount;
    /**
     * 答题人数
     */
    @TableField(value = "exam_user_count")
    private Integer examUserCount;
    /**
     * 答题正确率
     */
    @TableField(value = "right_rate")
    private BigDecimal rightRate;
    /**
     * 平均分
     */
    @TableField(value = "avg_score")
    private BigDecimal avgScore;
    /**
     * 最低分
     */
    @TableField(value = "lowest_score")
    private BigDecimal lowestScore;
    /**
     * 最高分
     */
    @TableField(value = "highest_score")
    private BigDecimal highestScore;
    /**
     * 学生成绩分布
     */
    @TableField(value = "student_grade_distribution")
    private List<GradeDistributionDTO> studentGradeDistribution;
    /**
     * 试题得分率列表
     */
    @TableField(value = "question_score_rate_list")
    private List<QuestionScoreRateDTO> questionScoreRateList;
    /**
     * 试题讲解列表
     */
    @TableField(value = "question_explain_list")
    private List<QuestionExplainDTO> questionExplainList;

}
